Add cross-platform notification timeouts #206
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Linux (DBus) is the only platform that theoretically supports timeouts, but few (if any?) notification servers actually implement timeouts. Windows exposes a
expiration_time
property, but this doesn't close the notification, but just controls after what time the toast is hidden and the notification sent to the notifications center (i.e. the notification isn't actually closed). OS X doesn't support expiration. We therefore implement our own cross-platform notification timeouts.THIS IS WORK IN PROGRESS
I want to make sure that the
on_cleared
event is called in case of an timeout on all platforms, not just on Linux. I'm not entirely sure how to implement this yet... Just callinghandle_cleared
doesn't work very well because backends will still issue anon_dismissed
event. This won't triggerNotification.on_dismissed
because the notification was removed from the cache byhandle_cleared
already, but the class-level callback will still fire... I have to think about that...Closes #46